/**
 *	\file
 *	\brief indicates whether a formal parameter (o return value) is passed by COPY or REAL.
 *
 *	The formal parameters and the return value of a function can be passed from/to the body of the function itself in
 *	2 ways:
 *	\li REAL: it is passed the very actual parameters: every change to the variable affects the actual parameter;
 *	\li COPY: it is passed only a copy of the parameter: no changes will happen to the actual parameter;
 *
 * 	\date Sep 1, 2013
 * 	\author koldar
 */

#ifndef PASSMODE_H_
#define PASSMODE_H_

#include <stdio.h>

/**contains all the possible ways to pass a variable from/to a function
 *
 */
typedef enum PassMode {
	PASSMODE_REAL,//!< PASSMODE_REAL indicates that it is passed the very actual variable
	PASSMODE_COPY //!< PASSMODE_COPY indicates that it is passed only a copy of the actual variable
} PassMode;

/**prints a string representation of a passmode
 *
 * \pre
 *  \li f open in write mode
 * \post
 *  \li in f there is printed "REAL" or "COPY"
 *
 * @param f the file to write on the PassMode object
 * @param passmode the object to be written
 */
void printPassMode(FILE* f,PassMode passmode);

#endif /* PASSMODE_H_ */
